#!/bin/bash

#带向量插件
#docker pull ankane/pgvector

docker pull ankane/pgvector:v0.5.1

#docker run --name postgres -e POSTGRES_USER=root -e POSTGRES_PASSWORD=testYnlcom -p 15432:5432 -d ankane/pgvector:v0.5.1

docker run --name postgres -e POSTGRES_USER=root -e POSTGRES_PASSWORD=Chat_gtp_123 -p 10432:5432 -d ankane/pgvector:v0.5.1


#CREATE EXTENSION IF NOT EXISTS vector;
#CREATE TABLE IF NOT EXISTS public.cg_embedding
 #(
 #    pkid varchar(100) NOT NULL,
 #    init_msg text NOT NULL,
 #    vector vector(1536)
 #)

#SELECT * FROM t_user ORDER BY embedding <-> '[1,2,3]'
#SELECT *,embedding <-> '[0.1,1.1,2.1]' as distance FROM t_user ORDER BY embedding <-> '[0.1,1.1,2.1]'

#<->：该运算符计算两个向量之间的欧几里德距离。欧几里德距离是多维空间中向量表示的点之间的直线距离。较小的欧几里德距离表示向量之间的相似性较大，因此该运算符在查找和排序相似项目时非常有用。
#<=>：该运算符计算两个向量之间的余弦相似度。余弦相似度比较两个向量的方向而不是它们的大小。余弦相似度的范围在 -1 到 1 之间，1 表示向量相同，0 表示无关，-1 表示向量指向相反方向。
#<#>：该运算符计算两个向量之间的曼哈顿距离（也称为 L1 距离或城市街区距离）。曼哈顿距离是每个维度对应坐标差的绝对值之和。相对于欧几里德距离而言，曼哈顿距离更加强调沿着维度的较小移动。



#docker pull postgres
#
#docker run --name postgres-db -e POSTGRES_PASSWORD=Root123 -p 5432:5432 -d postgres

#docker run --name postgres-db -e TZ=PRC -e POSTGRES_USER=root -e POSTGRES_DB=database -e POSTGRES_PASSWORD=Root123 -p 5432:5432 -v pgdata:/var/lib/postgresql/data -d postgres

#run，创建并运行一个容器；
 #--name 容器名称postgres-db
 #-e TZ=PRC时区，中国
 #-e POSTGRES_USER=root 用户名是root（不设置默认用户名postgres）
 #-e POSTGRES_DB=database DB模式数据库模式
 #-e POSTGRES_PASSWORD 密码
 #-p 5432:5432端口映射，把容器的5432端口映射到服务器的5432端口
 #-v 将数据存到宿主服务器
 #-d 后台运行
 #(时区问题:如果在启动容器时不设置时区，默认为UTC，使用now()设置默认值的时候将有时间差。)












